求"好数"

来源:百度知道 编辑:UC知道 时间:2024/06/05 15:51:58
如果x*x*x=a*a*a+b*b*b+c*c*c且xabc都是正整数,就说x是"好数"
用穷举法在VB中编写一段程序求出最小的10个"好数"

Do
a = a + 1
For i = 1 To a - 1
For j = 1 To a - 1
For z = 1 To a - 1
If a * a * a = i * i * i + j * j * j + z * z * z Then
Print a, i, j, z
k = k + 1
If k = 10 Then Exit Do
i = a
j = a
z = a
End If
Next z
Next j
Next i
Loop

楼上正解,而且输出的好数为a,不重复。
原理:利用三重循环,增加一个条件判断,若满足条件则打印出结果,并将i,j,z(即楼主所提到的a、b、c)置为最大,直接跳出最外层循环,进入a的下一次循环求解,否则,直接进入下一次循环。
那个k则是用来计数的,若结果达到10条,则结束Do...Loop循环。

For t1 = 1 To 100
For t2 = 1 To 100
For t3 = 1 To 100
For t4 = 1 To 100
If t4 * t4 * t4 = t1 * t1 * t1 + t2 * t2 * t2 + t3 * t3 * t3 Then
Print t1, t2, t3, t4
End If
Next
Next
Next
Next